pub fn dp_rec_mc(amount: u32) -> u32 {
    let coins = vec![1, 2, 5, 10, 20, 30, 50, 100];

    let mut dp = vec![amount + 1; (amount + 1) as usize];
    dp[0] = 0;

    for i in 1..=amount as usize {
        // 遍历每一个纸币面额
        for &coin in &coins {
            if i >= coin as usize {
                dp[i] = dp[i].min(dp[i - coin as usize] + 1);
            }
        }
    }

    dp[amount as usize]
}
